feat(providers): add Google Gemini TTS provider#1828
Conversation
⏳ Approval required for deploying to Cloudflare Workers (Preview) for stage-web.
Hey, maintainers, kindly take some time to review and approve this deployment when you are available. Thank you! 🙏 |
There was a problem hiding this comment.
Code Review
This pull request introduces the Google Gemini Speech provider, adding a new settings UI, store registration, and a core implementation that includes a custom fetch adapter to handle Gemini's text-to-speech API and PCM-to-WAV conversion. The changes also include comprehensive unit tests and locale updates, alongside a minor refactor to standardize CSS classes by replacing 'of-x-auto' with 'overflow-x-auto' across several settings modules. Feedback was provided regarding an inconsistency in base URL normalization where the current logic removes trailing slashes, potentially conflicting with the validator's expectations.
The previous implementation stripped trailing slashes from the base URL, inconsistent with the baseUrlValidator (which requires trailing slashes) and all other providers (openai-compatible-builder, openrouter/audio-speech). Align normalizeBaseUrl, createAudioFetch, and createSpeechProvider with the project convention. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Description
This PR replaces #1824 with a cleaner branch history.
It adds a Google Gemini API text-to-speech provider to AIRI's speech provider list.
Included:
The settings layout fixes are included here because they affect the same provider settings surface needed to configure and use the new Gemini TTS provider.
Linked Issues
Replaces #1824
Additional Context
Tested with:
pnpm lintpnpm typecheck